// easy

// 给定一个链表的头节点head，以及一个整数k
// 要求返回链表的倒数第k个节点

// 思路，使用快慢指针，让快指针先走k步，然后快慢指针同时走，这样等块指针遍历到链表尾部的时候，慢指针正好刚好遍历到了倒数k个节点
const { ListNode, LinkedList } = require('../../1. 链表基础/1. 建立线性链表')

function getKthFromEnd(head, k) {
    let slow = head
    let fast = head
    for (let i = 0; i < k; i++) {
        if (fast === null) {
            return fast
        }
        fast = fast.next
    }
    while (fast) {
        slow = slow.next
        fast = fast.next
    }
    return slow
}
let node = new LinkedList([1,2,3,4,5,6])
console.log(getKthFromEnd(node.head, 4))